perm filename RESPON.TO[P,JRA] blob
sn#143835 filedate 1975-01-27 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Several responses to my ACM letter have been of the form: "I
C00012 ENDMK
Cā;
Several responses to my ACM letter have been of the form: "I
basically agree with your ideas but there are better ways than
LISP..." The arguments usually point out the deficiencies in LISP;
either problems with its original design -- poor closures, paucity of
data structures-- or hacks in its usual implementation --exposed
property lists, and generally weak protection from self-destruction,
etc. These criticisms have happened sufficiently often that a
response should be given.
Yes, there are some serious flaws in LISP both in conception and from
a practical standpoint. In SUPER LISP I attempt to expose those
difficulties which I know of; and in the final chapter I explain a
possible LISP-like language which attempts to remedy these errors of
omission and commission.
Let me point out immediately, that as a research or theoretical tool
for advanced study of programming languages, LISP is highly suspect.
My ax-grinding is in the realm of undergraduate curriculum. Why not
teach them the "right" way to begin with? There are at least two
reasons for continuing with LISP.
First, as I stated in my ACM letter, I believe that the primary goal
of undergraduate education is to get the students to think about
problems, or perhaps, just to think. They should be exposed to
computer science in a way which emphasizes the little continunity
that there is. We can not afford to have machines designed by people
ignorant of programming language design; we cannot afford to have
programmers ignorant of the methods of good programming practice and
ideas of program correctness. LISP is sufficiently sophisticated
that it can support such a broad spectrum of modern topics in
computer science. To understand the inadequacies in LISP, requires a
discussion of the original problem. To present a new language without
a discussion of why less sophisticated solutions are not sufficient
is to condem people to make the same mistakes which LISP's original
designers and implementors made. There's that old cliche' about
people who do not understand history's past mistakes are bound to
repeat them. Undergraduates are renown for their ability to make
mistakes. So to cover the field of computer science in a reasonably
unified fashion, and to expose the pitfalls waiting for the would-be
language designer or implementor, LISP is without rival.
The second reason for defending LISP is much more practical. I
believe that there has been little progress in the field of
undergraduate education. We are still tied to FORTRAN, PL/1, and
machine language courses. If Peter Naur is to be believed, the
prognosis for breaking this cartel is quite poor. I believe that (at
least in this country) the only possible way to change the
educational policies is through LISP. Though there may be better
languages around, the typical departmental bureaucrat is not likely
to commit his department to some up-start dialect. He must be
convinced that it will make his department more beautiful and
desireable. Of the acceptable languages (PASCAL is not one) LISP I
believe is unique with regard to this "political reality". LISP is
reasonbly accessible; there is even aversion (sic) in FORTRAN. There
is a signifcant history of interesting programs available in LISP and
there is a significant number of talented people around the country
who are knowledgeable in LISP folk-lore. If the local wizard dies the
department doesn't have to close down. Furthermore the major
research institutions use LISP quite heavily; even the most
hard-nosed bureaucrat cannot ignore this fact. Now it has taken LISP
fifteen years to gain even this small measure of respectability. How
long would it take XYZ 1.5 to gain a similar foothold?
Of course this argument presupposes the desireability of exposing the
hoi-poloi to a sophisticated language. Why not "Let 'em eat FORTRAN"?
I think if nothing else it is in our own best interests. Getting
the very best education to the future researchers is obvious; but we
must also get an improved education to the working programmer. They
will have a significantly greater impact on the world than most
researchers; they will have a greater impact on the world than most
of us would like to imagine. Self-preservation says they must be
better educated.
A couple of people have pointed out the difficulties after getting
LISP accepted. We would be in danger of having a sophisticated
language being taught by incompetent teachers; a situation similar to
that of the "new mathematics" (among others). That certainly is a
distinct possibility. There are at least two answers. First since
LISP DOES have a counter-culture, a sufficiently persistent student
can look elswhere for guidance; again an argument for LISP rather
than a local dialect. Second LISP most assuredly should be available
on an interactive machine. Then there is no excuse for the student
(or the teacher) not to go down the the machine and find out what
really happens! In either case we are dealing with a group of people
with a significantly greater degree of self-government than primary-
school students. If college students don't like what is going down
they are able to raise sufficiently embarassing question.
So in summary, the combination of LISP's power, and its hacks,
coupled with the realities of departmental inertia makes LISP the
singular candidate for improving education.
"That language ranks highest which goes
farthest in the art of accomplishing
much with little means, or, in other
words, which is able to express the
greatest amount of meaning with the
simplest mechanism."
Jespersen, via Naur